Spark SQL এ বিভিন্ন ধরনের built-in functions রয়েছে যা ডেটা প্রসেসিংয়ের জন্য অত্যন্ত কার্যকরী। এই ফাংশনগুলো আপনাকে স্ট্রিং, নাম্বার, ডেটা, এবং অন্যান্য ডেটা টাইপের ওপর বিভিন্ন অপারেশন চালানোর সুবিধা দেয়। Spark SQL-এর built-in functions আপনি DataFrame API অথবা SQL কোয়ারির মাধ্যমে ব্যবহার করতে পারেন।
১. String Functions
Spark SQL-এ স্ট্রিং ডেটার উপর বিভিন্ন ধরনের built-in ফাংশন রয়েছে যা স্ট্রিং প্রসেসিংয়ের জন্য ব্যবহৃত হয়। এর মধ্যে কিছু জনপ্রিয় স্ট্রিং ফাংশন হলো:
১.১. length(): স্ট্রিংয়ের দৈর্ঘ্য নির্ণয় করা।
from pyspark.sql.functions import length
df = spark.createDataFrame([("Alice",), ("Bob",)], ["Name"])
df.select(length(df["Name"])).show()
১.২. upper(): স্ট্রিংকে বড় হাতের অক্ষরে রূপান্তর করা।
from pyspark.sql.functions import upper
df.select(upper(df["Name"])).show()
১.৩. lower(): স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তর করা।
from pyspark.sql.functions import lower
df.select(lower(df["Name"])).show()
১.৪. concat(): একাধিক স্ট্রিং একত্রিত করা।
from pyspark.sql.functions import concat
df.select(concat(df["Name"], df["Name"])).show()
১.৫. substr(): স্ট্রিংয়ের নির্দিষ্ট অংশ বের করা।
from pyspark.sql.functions import substr
df.select(substr(df["Name"], 1, 2)).show() # প্রথম ২টি অক্ষর বের করবে
২. Numeric Functions
Spark SQL-এ সংখ্যার সাথে কাজ করার জন্যও অনেক built-in numeric ফাংশন রয়েছে। কিছু জনপ্রিয় numeric ফাংশন:
২.১. abs(): একটি সংখ্যার অভ্যন্তরীণ মান বের করা।
from pyspark.sql.functions import abs
df = spark.createDataFrame([(-5,), (3,)], ["Number"])
df.select(abs(df["Number"])).show()
২.২. round(): একটি সংখ্যাকে নির্দিষ্ট দশমিক স্থানে গোল করা।
from pyspark.sql.functions import round
df = spark.createDataFrame([(5.6789,), (3.1415,)], ["Value"])
df.select(round(df["Value"], 2)).show() # ২ দশমিক পর্যন্ত গোল করবে
২.৩. ceil(): একটি সংখ্যাকে পরবর্তী পূর্ণসংখ্যায় রাউন্ড করা।
from pyspark.sql.functions import ceil
df.select(ceil(df["Value"])).show()
২.৪. floor(): একটি সংখ্যাকে পূর্ববর্তী পূর্ণসংখ্যায় রাউন্ড করা।
from pyspark.sql.functions import floor
df.select(floor(df["Value"])).show()
২.৫. avg(): একটি কলামের গড় মান বের করা।
from pyspark.sql.functions import avg
df.select(avg(df["Value"])).show()
৩. Date Functions
Spark SQL-এ ডেটার সাথে কাজ করার জন্যও অনেক built-in date ফাংশন রয়েছে। এই ফাংশনগুলো ডেটা প্রসেসিংয়ের জন্য খুবই সহায়ক।
৩.১. current_date(): বর্তমান দিনের তারিখ বের করা।
from pyspark.sql.functions import current_date
df = spark.createDataFrame([(1,)], ["ID"])
df.select(current_date()).show()
৩.২. current_timestamp(): বর্তমান সময় এবং তারিখ বের করা।
from pyspark.sql.functions import current_timestamp
df.select(current_timestamp()).show()
৩.৩. date_add(): একটি তারিখে নির্দিষ্ট দিন যোগ করা।
from pyspark.sql.functions import date_add
df = spark.createDataFrame([("2024-12-19",)], ["Date"])
df.select(date_add(df["Date"], 5)).show() # ৫ দিন যোগ করবে
৩.৪. date_sub(): একটি তারিখ থেকে নির্দিষ্ট দিন বাদ দেওয়া।
from pyspark.sql.functions import date_sub
df.select(date_sub(df["Date"], 5)).show() # ৫ দিন বাদ দিবে
৩.৫. year(): একটি তারিখের বছর বের করা।
from pyspark.sql.functions import year
df.select(year(df["Date"])).show()
৩.৬. month(): একটি তারিখের মাস বের করা।
from pyspark.sql.functions import month
df.select(month(df["Date"])).show()
৩.৭. datediff(): দুটি তারিখের মধ্যে পার্থক্য (দিনে) বের করা।
from pyspark.sql.functions import datediff
df = spark.createDataFrame([("2024-12-19", "2024-12-15")], ["Date1", "Date2"])
df.select(datediff(df["Date1"], df["Date2"])).show()
সারাংশ
Spark SQL-এর built-in functions বিভিন্ন ধরনের ডেটা (স্ট্রিং, নাম্বার, ডেটা) প্রসেসিংয়ের জন্য শক্তিশালী এবং কার্যকরী টুল প্রদান করে। আপনি এই ফাংশনগুলো ব্যবহার করে স্ট্রিংয়ের দৈর্ঘ্য নির্ণয় করা, সংখ্যা গোল করা, ডেটা থেকে মাস বা বছর বের করা ইত্যাদি অপারেশন সহজেই করতে পারবেন। Spark SQL এর ফাংশনগুলো ডেটা ফ্রেম API অথবা SQL কোয়ারি ব্যবহার করে প্রয়োগ করা যায়, যা ডেটা প্রসেসিংকে আরও দ্রুত এবং সহজ করে তোলে।
Read more